#include "EscritorNodo.h"

EscritorNodo::EscritorNodo() {

}

EscritorNodo::EscritorNodo(std::string path, long block_size){
	this->path  = path;
	this->block_size=block_size;
	this->manejo_bloques = new ManejoDeBloques(block_size, this->path);
}

void EscritorNodo::ActualizarArchivoNodo(Nodo * nodo, int nro_bloque){

	char buffer[block_size];
	for (int i = 0 ; i < block_size ; ++i){
		buffer[i] =char(0);
	}
	unsigned int offset = 0;
	if (nro_bloque > 0){
		Interno *nodoIntAGuardar = static_cast<Interno*> (nodo);
		nodoIntAGuardar->serializar(buffer, offset);
	}else{
		Hoja *nodoHojaAGuardar = static_cast<Hoja*> (nodo);
		nodoHojaAGuardar->serializar(buffer, offset);
	}
	this->manejo_bloques->guardar_bloque_arbol(buffer, nro_bloque);

}

EscritorNodo::~EscritorNodo() {
	delete this->manejo_bloques;
}
